# -*- codeing = utf-8 -*-
# @Time : 2022/4/17 01:17
# @Author : 林晓丽
# @File : wordCloud.py
# @Software : PyCharm


import jieba        # 分词
from matplotlib import pyplot as plt    # 绘图，数据可视化
from matplotlib import colors
from wordcloud import WordCloud     # 词云
from PIL import Image       # 图片处理
import numpy as np      # 矩阵运算
import sqlite3      # 数据库

def wordCloudLeft():
    # 准备词云所需的文字（词）
    con = sqlite3.connect("fundDB.db")
    cur = con.cursor()
    sql = 'select 基金名称 from Ranking'
    data = cur.execute(sql)
    text = ""
    for item in data:
        text = text + item[0]
        # print(item[0])
    # print(text)
    cur.close()
    con.close()

    # 分词
    cut = jieba.cut(text)
    string = ' '.join(cut)
    print(len(string))

    #建立颜色数组，可更改颜色
    color_list=['#d81e06','#fa5b55','#bc0832','#DC143C','#d4237a','#8B0000','#B22222','#d1070c']

    #调用
    colormap=colors.ListedColormap(color_list)

    img = Image.open(r'.\static\assets\img\升.jpg')  # 打开遮罩图片
    img_array = np.array(img)   # 将图片转换为数组
    wc = WordCloud(
        background_color='white',
        mask=img_array,
        font_path="simhei.ttf",  # 黑体   # 字体所在位置：C:\Windows\Fonts
        colormap=colormap,  # 设置文字颜色
        max_font_size=200,  # 设置字体最大值
        collocations=False  # 删除重复出现的词
    )
    wc.generate_from_text(string)

    # 绘制图片
    fig = plt.figure(1)
    plt.imshow(wc)
    plt.axis('off')     # 是否显示坐标轴

    # 输出词云图片到文件
    plt.savefig(r'.\static\assets\img\cloud1.jpg',dpi=500)
